package org.wdcode.base.interfaces.service;

import java.util.List;

import org.wdcode.base.bean.PageBean;

/**
 * 通用业务接口
 * @author WD
 * @since JDK6
 * @version 1.0 2009-09-23
 */
public interface Service<E> {
	/**
	 * 根据ID 获得实体
	 * @param id ID
	 * @return 实体
	 */
	E get(int id);

	/**
	 * 根据传入的条件，返回唯一的实体 如果有多个返回第一个实体
	 * @param entity 实体
	 * @return 实体
	 */
	E get(E entity);

	/**
	 * 查询全部
	 * @return 全部实体
	 */
	List<E> queryByAll();

	/**
	 * 分页查询
	 * @param entity 实体
	 * @param page 分页Bean
	 * @return 列表
	 */
	List<E> queryByEntity(E entity);

	/**
	 * 分页查询
	 * @param entity 实体
	 * @param page 分页Bean
	 * @return 列表
	 */
	List<E> queryByPage(E entity, PageBean page);

	/**
	 * 添加
	 * @param entity 实体
	 * @return ID
	 */
	int insert(E entity);

	/**
	 * 添加
	 * @param entity 实体
	 * @return 影响行数
	 */
	int insert(List<E> list);

	/**
	 * 更新
	 * @param entity 实体
	 * @return 影响的行数
	 */
	boolean update(E entity);

	/**
	 * 更新
	 * @param list 实体列表
	 * @return 是否成功
	 */
	boolean update(List<E> list);

	/**
	 * 删除
	 * @param entity 实体
	 * @return 是否成功
	 */
	boolean delete(E entity);

	/**
	 * 删除
	 * @param list 实体列表
	 * @return 是否成功
	 */
	boolean delete(List<E> list);

	/**
	 * 根据ID删除 完全删除
	 * @param id ID
	 * @return 是否成功
	 */
	boolean delete(int id);

	/**
	 * 根据ID数组删除 完全删除
	 * @param ids ID数组
	 * @return 是否成功
	 */
	boolean delete(int[] ids);
}
